using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class logged_Avaliacao : System.Web.UI.Page
{

    private ActivUFRJ.Classes.Usuario.Usuario usuario = ActivUFRJ.Utilitarios.Usuario.GetSessao();
    private ActivUFRJ.Classes.Artefato.Artefato artefato;

    protected void Page_Load(object sender, EventArgs e)
    {

        // valida a sessao do usuario
        ActivUFRJ.Utilitarios.Usuario.ValidarSessao(usuario);

        // valida o artefato
        artefato = new ActivUFRJ.Classes.Artefato.Artefato(Request.QueryString["ID"]);
        ActivUFRJ.Utilitarios.Validar.Artefato(artefato);

        if (!IsPostBack)
        {
            CarregarControles();
            CarregarAvaliacoes();
        }
        MostrarAba();
    }

    private void MostrarAba()
    {
        int indiceAba = 0;
        string categoria;
        try
        {
            categoria = Request.QueryString["categ"];
            if (categoria == "ExibirAvaliacoes") indiceAba = 1;
        }
        catch { }
        MultiViewAvaliacao.ActiveViewIndex = indiceAba;
    }

    protected void btnEnviar_Click(object sender, EventArgs e)
    {

        ActivUFRJ.Classes.Artefato.Avaliacao avaliacao = new ActivUFRJ.Classes.Artefato.Avaliacao();

        avaliacao.Artefato = artefato;
        avaliacao.Autor = usuario;
        avaliacao.Comentario = tbComentario.Text;
        avaliacao.NotaAvaliacao = new ActivUFRJ.Classes.Artefato.NotaAvaliacao(Convert.ToInt32(cbNotaAvaliacao.SelectedValue));
        avaliacao.DataEnvio = System.DateTime.Now;

        bool salvo = avaliacao.SalvarAvaliacao(true);

        if (salvo)
        {
            MultiViewEnviarAvaliacao.ActiveViewIndex = 1;
        }
        else Server.Transfer(ActivUFRJ.Sistema.Paginas.DefaultErrorPage);

    }

    private void CarregarControles()
    {
        // link da esquerda....
        hlVoltarAPaginaDoArtefato.NavigateUrl = "Artefato.aspx?ID=" + artefato.ID.ToString();
        hlVoltarAPaginaArtefatoSalvo.NavigateUrl = "Artefato.aspx?ID=" + artefato.ID.ToString();

        // mensagem de:
        lblDe.Text = usuario.NomeCompleto + " (" + usuario.Email + ")";
        lblNomeUsuario.Text = usuario.NomeCompleto;

        // mensagem para:
        lblPara.Text = artefato.Autor.NomeCompleto + " (" + artefato.Autor.Email + ")";

        // em:
        lblEm.Text = System.DateTime.Now.ToLongDateString();

        // nome do artefato
        lblNomeArtefato.Text = artefato.Nome;
        
        // notas de avaliacao
        CarregarNotasAvaliacao();
        CarregarAvaliacoes();

    }

    private void CarregarNotasAvaliacao()
    {
        cbNotaAvaliacao.DataSource = ActivUFRJ.Classes.Artefato.MgrNotaAvaliacao.GetNotasAvaliacaoDT();
        cbNotaAvaliacao.DataTextField = "ANA_Descricao";
        cbNotaAvaliacao.DataValueField = "ANA_ID";
        cbNotaAvaliacao.DataBind();
        cbNotaAvaliacao.Items.Insert(0, new ListItem("", "0"));
        cbNotaAvaliacao.SelectedIndex = 0;
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Server.Transfer("Artefato.aspx?ID=" + artefato.ID.ToString());
    }

    protected void lbLerMensagens_Click(object sender, EventArgs e)
    {
        MultiViewAvaliacao.ActiveViewIndex = 1;
    }

    protected void lnbEnviarMensagem02_Click(object sender, EventArgs e)
    {
        MultiViewAvaliacao.ActiveViewIndex = 0;
    }

    private void CarregarAvaliacoes()
    {
        dataListAvaliacoes.DataSource = ActivUFRJ.Classes.Artefato.MgrAvaliacao.GetAvaliacoesDT(artefato, -1);
        dataListAvaliacoes.DataBind();

        // caso nao haja avaliacao
        if (dataListAvaliacoes.Items.Count == 0) lblNenhumaAvaliacao.Visible = true;
    }
}
